package com.suixun.dao.devicemanage;

import java.util.List;
import java.util.Map;

import com.suixun.entity.SimInfo;
import com.suixun.entity.form.SimInfoForm;
import com.suixun.entity.page.PageModel;

/**
 * 
 * @author 
 *
 */
public interface SimInfoServiceDAO {

	

	/**
	 * 查询列表
	 */
	List<SimInfo> querySimInfolist(SimInfoForm paramForm);
	List<SimInfo> querySimInfolistPage(PageModel<?> page);
	
	List<SimInfo> queryPeopleinfo(Integer id);
	int addSimInfo(SimInfo device);
	
	/**
	 * 删除
	 */
	int deleteSimInfo(int id);
	
	/**
	 * 更新
	 */
	int updateSimInfo(SimInfo device);

	/**
	 * 查询总行数
	 */
	Integer countRows(PageModel page);
	
	SimInfo querySimInfoByIccid(SimInfoForm device);
	int queryUsedCounts(SimInfoForm device);
	SimInfo querySimInfoByID(SimInfoForm device);
	
	Integer recycleSimInfo(Map<String,Object> map);
	/**
	 * <p>Title: addIotSim</p>
	 * <p> 功能描述:将用户导入数据保存到std_iot_sim数据库 </p>
	 * @return
	 */
	int addIotSim();
	/**
	 * 
	 * <p>Title: createTmpTable</p>
	 * <p> 功能描述:创建临时表 </p>
	 */
	void createTmpTable();
	/**
	 * 
	 * <p>Title: addSimTmp</p>
	 * <p> 功能描述:添加临时表数据 </p>
	 * @param map
	 * @return
	 */
	int addSimTmp(Map<String,Object> map);
	/**
	 * <p>Title: importSim</p>
	 * <p> 功能描述:sim卡入库 </p>
	 * @return
	 */
	Integer importSim();
	/**
	 * 
	 * <p>Title: dropTmpTable</p>
	 * <p> 功能描述:删除临时表 </p>
	 */
	void deleteTmpTable();
	/**
	 * <p>Title: createRepeatTable</p>
	 * <p> 功能描述: 创建临时重复表</p>
	 */
	void createRepeatTable();
	/**
	 * <p>Title: queryRepeatTable</p>
	 * <p> 功能描述:查询临时重复表 </p>
	 * @return
	 */
	List<SimInfo> queryRepeatTable();
	/**
	 * <p>Title: deleteRepeatTable</p>
	 * <p> 功能描述:删除临时重复表 </p>
	 */
	void deleteRepeatTable();
	/**
	 * <p>Title: querySimTmp</p>
	 * <p> 功能描述:查看临时表中数据 </p>
	 * @param page
	 * @return
	 */
	List<SimInfo> querySimTmp(PageModel<?> page);
	/**
	 * <p>Title: querySimTmpRows</p>
	 * <p> 功能描述:查询临时表数据总行数 </p>
	 * @return
	 */
	Integer querySimTmpRows();
	/**
	 * <p>Title: queryByParam</p>
	 * <p> 功能描述:条件查询std_iot_sim表 </p>
	 * @param map
	 * @return
	 */
	List<SimInfo> queryByParam(Map<String,Object> map);
	/**
	 * <p>Title: querySimTmpInSim</p>
	 * <p> 功能描述:查看临时表中数据在实际表中是否已被绑定 </p>
	 * @return
	 */
	List<SimInfo> querySimTmpInSim();
	/**
	 * 
	 * <p>Title: deleteSimTmpInSim</p>
	 * <p> 功能描述:删除std_iot_sim表中std_iot_sim_temp表的数据  </p>
	 * @return
	 */
	int deleteSimTmpInSim();
	/**
	 * 查询索引
	 * @return
	 */
	Integer queryTempIndex();
	/**
	 * 添加索引
	 * @return
	 */
	int addTempIndex();
}
